<?php
/**
 * @see ZendX_JQuery_View_Helper_UiWidget
 */
require_once "ZendX/JQuery/View/Helper/UiWidget.php";

/**
 * Помощник вида, реализующий вывод таблиц (на основе phormGrid)
 * 
 * @category Phorm
 * @package JQuery_View_Helper
 * @name /Phorm/JQuery/View/Helper/DataGrid.php
 * @copyright phorm.ru
 * @since 14.01.2011
 * @author vladimir@kachalov.net
 */

class Phorm_JQuery_View_Helper_DataGrid extends ZendX_JQuery_View_Helper_UiWidget {
	
	/**
	 * Строим HTML-элемент
	 *
	 * @param string $id Идентификатор HTML-элемента
	 * @param mixed $params Массив параметров, передаваемых в JS-скрипт инициализации грида
	 * @return string
	 */
	
	public function dataGrid($id, $params=array()) {
		
		if($params instanceof Zend_Config) $params = $params->toArray();
		
		// Определяем параметры для передачи в плагин phormGrid
		
		$options = array();
		
		$options['url'] = isset($params['url']) ? $this->view->siteUrl().$params['url'] : $this->view->siteUrl().$this->view->url();
		if(isset($params['icons'])) $options['icons']=$this->view->baseUrl().$params['icons'];
		if(isset($params['search']) && $params['search']==0) $options['search']=false;
		if(isset($params['sort']) && $params['sort']==0) $options['sort']=false;
		if(isset($params['selectable']) && $params['selectable']==0) $options['selectable']=false;
		if(isset($params['sortable']) && $params['sortable']==0) $options['sortable']=false;
		if(isset($params['pagerBefore']) && $params['pagerBefore']==0) $options['pagerBefore']=false;
		if(isset($params['pagerAfter']) && $params['pagerAfter']==0) $options['pagerAfter']=false;
		
		$options = ZendX_JQuery::encodeJson($options);
		
		if(isset($params["onComplete"])) {
			$options = substr($options,0,-1).',onComplete: '.$params['onComplete'].'}';
		}

        $js = sprintf('%s("#%s").phormGrid(%s);',
            ZendX_JQuery_View_Helper_JQuery::getJQueryHandler(),
            $id,
            $options
        );
        
        $this->jquery->addJavascriptFile($this->view->baseUrl().'/ui/phorm/phorm.js');
        $this->jquery->addStylesheet($this->view->baseUrl().'/ui/phorm/phorm.css');

        $this->jquery->addOnLoad($js);

	    return '<div id="'.$id.'"></div>';
		
	}
	
}